#----------------------------------[知乎：叶枝黎曼]----------------------------
'''
给定一张 N 个点 M 条边的有向无环图，分别统计从每个点出发能够到达的点的数量。

输入格式
第一行两个整数 N,M，接下来 M 行每行两个整数 x,y，表示从 x 到 y 的一条有向边。

输出格式
输出共 N 行，表示每个点能够到达的点的数量。

数据范围
1≤N,M≤30000
输入样例：
10 10
3 8
2 3
2 5
5 9
5 9
2 3
3 9
4 8
2 10
4 9
输出样例：
1
6
3
3
2
1
1
1
1
1
'''

# 注意重边
def Lin(a,b):
    if a not in link.keys():
        link[a] = {b}
        ind[b] += 1
    else:
        if b not in link[a]:
            link[a].add(b) #注意重边
            ind[b] += 1


def topSort():
    queue = []
    for i in range(1,n+1):
        if ind[i] == 0:
            queue.append(i)

    while queue:
        sam = queue.pop(0)

        if sam not in link.keys():
            continue
        for node in link[sam]:
            ind[node] -= 1
            f[node] |= f[sam]

            if ind[node] == 0:
                queue.append(node)

    
n,m = map(int,input().split())
link = {}
ind = [0]*(n + 1)
for i in range(m):
    a,b = map(int,input().split())
    Lin(b,a)


f = [0]*(n + 1)
for i in range(1,n+1):
    f[i] = 1 << i

topSort()
for i in range(1,n+1):
    temp = 0
    while f[i]:
        if f[i] & 1:
            temp += 1
        f[i] >>= 1
    print(temp)

